-
Notifications
You must be signed in to change notification settings - Fork 385
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix deprecation warnings #7614
Fix deprecation warnings #7614
Conversation
7ffc0eb
to
1e8de9a
Compare
@westonruter Can you please update the patch at westonruter/PHP-CSS-Parser#2 which is causing this deprecation warning
|
Plugin builds for e8f73c5 are ready 🛎️!
|
e0ce678
to
14b70d7
Compare
'edit_terms' => 'do_not_allow', // Terms are created (and updated) programmatically. | ||
// Terms are created (and updated) programmatically, but we still need to assign capabilities while generating edit link for term. | ||
// @see <https://github.com/ampproject/amp-wp/issues/7604#issuecomment-1704244763>. | ||
'edit_terms' => AMP_Validation_Manager::VALIDATE_CAPABILITY, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Won't this then allow users to access the edit term page when they shouldn't be able to access it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At the very least we'll also need to unset($actions['edit'])
in:
amp-wp/includes/validation/class-amp-validation-error-taxonomy.php
Lines 1679 to 1738 in 828f229
public static function filter_tag_row_actions( $actions, WP_Term $tag ) { | |
global $pagenow; | |
$term_id = $tag->term_id; | |
$term = get_term( $term_id ); // We don't want filter=display given by $tag. | |
/* | |
* Hide deletion link since a validation error should only be removed once | |
* it no longer has an occurrence on the site. When a validated URL is re-checked | |
* and it no longer has this validation error, then the count will be decremented. | |
* When a validation error term no longer has a count, then it is hidden from the | |
* list table. A cron job could periodically delete terms that have no counts. | |
*/ | |
unset( $actions['delete'] ); | |
if ( 'post.php' === $pagenow ) { | |
$actions['details'] = sprintf( | |
'<button type="button" aria-label="%s" class="single-url-detail-toggle button-link">%s</button>', | |
esc_attr__( 'Toggle error details', 'amp' ), | |
esc_html__( 'Details', 'amp' ) | |
); | |
$actions['copy'] = sprintf( | |
'<button type="button" class="single-url-detail-copy button-link" data-error-json="%s">%s</button>', | |
esc_attr( self::get_error_details_json( $term ) ), | |
esc_html__( 'Copy to clipboard', 'amp' ) | |
); | |
} elseif ( 'edit-tags.php' === $pagenow ) { | |
$actions['details'] = sprintf( | |
'<a href="%s">%s</a>', | |
admin_url( | |
add_query_arg( | |
[ | |
self::TAXONOMY_SLUG => $term->name, | |
'post_type' => AMP_Validated_URL_Post_Type::POST_TYPE_SLUG, | |
], | |
'edit.php' | |
) | |
), | |
esc_html__( 'Details', 'amp' ) | |
); | |
if ( 0 === $term->count ) { | |
$actions['delete'] = sprintf( | |
'<a href="%s">%s</a>', | |
wp_nonce_url( | |
add_query_arg( array_merge( [ 'action' => 'delete' ], compact( 'term_id' ) ) ), | |
'delete' | |
), | |
esc_html__( 'Delete', 'amp' ) | |
); | |
} | |
} | |
$actions = wp_array_slice_assoc( $actions, [ 'details', 'delete', 'copy' ] ); | |
self::$current_validation_error_row_index++; | |
return $actions; | |
} |
Then there's the question of the REST API. I suppose they can't access it because it's not public
and show_in_rest
is not true
.
On the other hand, is this actually a bug that should rather be fixed in core?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Won't this then allow users to access the edit term page when they shouldn't be able to access it?
We are not providing an edit link so it will be hard to generate the link with the correct tag_ID
.
At the very least we'll also need to unset($actions['edit']) in:
I think it will do it.
$actions = wp_array_slice_assoc( $actions, [ 'details', 'delete', 'copy' ] ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On the other hand, is this actually a bug that should rather be fixed in core?
Yes, and I have filed a ticket for that - https://core.trac.wordpress.org/ticket/59336
'', | ||
'options.php', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Linking your pervious #7614 (comment) here.
This was made an empty string in e30168c.
You say:
But adding
options.php
provides the same behavior without breaking anything. So updating it tooptions.php
.
Can you clarify further what this is doing? Is it that there is no menu item for options.php
so it won't add anything to the menu?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. It won't be accessible from a submenu item but rather only accessible via the URL which is options.php?page=amp-onboarding-wizard
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or if we want to hook it to amp-options
page and keep it hidden in the submenu items then we need to only register it when it's called via URL - e0ce678
This reverts commit 308e17c.
if ( false !== $has_pre_term_description_filter ) { | ||
add_filter( 'pre_term_description', 'wp_filter_kses', $has_pre_term_description_filter ); | ||
} | ||
|
||
// Bail if redirect_is passed as null. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
redirect_is
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should be $redirect_to
. Will update it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in 6d8a722
|
||
// Set title to be used in the screen. | ||
global $title; | ||
$title = 'Test Title'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see this is coming from 1e8de9a. It was needed due to a PHP warning during tests?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, while rendering the screen it requires the title, but the title is not being set anywhere.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this commit needed to work around the issue in tests which you're fixing in core?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which commit? I am unable to see any diff with this comment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, I meant 2c43d0d
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's different from that one. handle_single_url_page_bulk_and_inline_actions()
uses get_edit_post_link()
which requires edit_post
capability in general. In test cases we were not setting up the user hence it was resulting into deprecation warnings.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What was the deprecation warning?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Those were the same as passing null to add_query_arg()
Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /tmp/wordpress/src/wp-includes/functions.php on line 1157
Deprecated: str_contains(): Passing null to parameter #1 ($haystack) of type string is deprecated in /tmp/wordpress/src/wp-includes/functions.php on line 1164
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎉
Summary
Fixes #7604
Checklist